Installation Troubleshooting
ModuleNotFoundError during installation
Problem: When I attempt to install MoveIt Pro on Ubuntu 22.04, I see error messages in my terminal such as:
ModuleNotFoundError: No module named 'X'
For example,
ModuleNotFoundError: No module named 'typer'
Solution: Make sure you are not using a Python virtual environment (which is missing expected dependencies). Use deactivate
for venv/virtualenv environments and conda deactivate
for Conda environments.
Debian dependency problems
Problem: As a Debian user I see error messages in my terminal such as:
The following packages have unmet dependencies:
moveit-pro : Depends : python3-ruamel.yaml (>= 0.17.16) but 0.16.12-2 is to be installed
Depends : python3-typer (>= 0.4.0-1) but 0.4.0-1~bpo11+1 is to be installed
E: Unable to correct problems, you have held broken packages.
Solution: Enable bullseye-backports:
echo "deb http://deb.debian.org/debian bullseye-backports main contrib non-free" | sudo tee -a /etc/apt/sources.list
ros2_control failed to increase socket receive buffer size
Problem: The MoveIt Pro installer was unable to increase the kernel buffer size above the CycloneDDS SocketReceiveBufferSize
minimum.
Solution: A recommended solution is to increase the Linux kernel receive buffer size as follows.
You only need to do this once per login to your host machine, or you can save the settings by modifying your /etc/sysctl.conf
file.
This is performed automatically as long as /etc/sysctl.conf
can be modified.
sudo sysctl -w net.core.rmem_max=2147483647
If you are unable to increase the kernel receive buffer size, you can reduce the minimum SocketReceiveBufferSize
with a custom CycloneDDS configuration.
Following our DDS configuration guide, you can specify a custom Cyclone DDS configuration file (adjust as necessary to point to your XML configuration file):
export CYCLONEDDS_URI=~/.ros/cyclonedds.xml
Using the editor of your choice, paste the following contents into your XML configuration file, reducing SocketReceiveBufferSize
to match your system.
<?xml version='1.0' encoding='us-ascii'?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain id="any">
<General>
<Interfaces>
<NetworkInterface autodetermine="false" name="lo" />
</Interfaces>
<AllowMulticast>false</AllowMulticast>
</General>
<Discovery>
<ParticipantIndex>auto</ParticipantIndex>
<Peers>
<Peer Address="127.0.0.1" /></Peers>
<MaxAutoParticipantIndex>50</MaxAutoParticipantIndex>
</Discovery>
<Internal>
<!-- Improves the performance of topic subscribers receiving large messages. -->
<SocketReceiveBufferSize min="10MB" />
</Internal>
</Domain>
</CycloneDDS>
Hint: If you saw an error like: failed to increase socket receive buffer size to at least 10485760 bytes, current is 2000000 bytes
, your kernel buffer size is set to 2Mb.
Unable to open display
Problem: When attempting to run MoveIt Pro with a Gazebo simulation, I see error messages in my logs involving Unable to open display:
.
Solution: Gazebo requires access to your display server to correctly visualize simulated scenes. Two common issues that could prevent the environment from accessing your display are:
Running MoveIt Pro from a CLI environment that does not have access to an X server, such as over an ssh connection.
The simplest solution to starting a Gazebo simulation is to launch it from a graphical desktop environment. However, if ssh is a requirement, ensure that the session has X forwarding enabled. Though there may be other issues with hardware acceleration depending on your machine setup.
Running as a non-UID 1000 user without permission to the X server in the graphical desktop.
By default, the MoveIt Pro application runs as a user with UID 1000. If this does not match your user's UID, then you will need to explicitly give xhost permissions to the application. At each login to your host machine, run the following to ensure the application has permissions to access display resources:
xhost +local:docker
DDS UDP communication errors
Problem: When I attempt to run MoveIt Pro, I see error messages in my logs from MoveIt Pro and other ROS processes involving ddsi_udp_conn_write_failed
.
Solution: Try restarting the ROS daemon with ros2 daemon stop
, then ros2 daemon start
. If that doesn't work, try rebooting.
MoveIt Pro fails to bind ports
Problem: When I attempt to run MoveIt Pro, I see error messages in my logs from the web_ui
container such as:
moveit_studio-web_ui-1 | 2023/09/26 16:23:26 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address already in use)
moveit_studio-web_ui-1 | nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
Solution: Check for other processes using localhost port 80
and kill them:
lsof -i tcp:80
kill $(lsof -t -i:80)
MoveIt Pro UI does not finish loading
Problem: When I attempt to run MoveIt Pro, the UI does not finish loading. The robot or other objects are not displayed.
Solution: A previous process likely did not shut down properly. Close the terminals that were previously running MoveIt Pro with Ctrl+D. Then open new terminals and launch again.
MoveIt Pro simulator's camera feeds have low framerate
Problem: I have an Nvidia GPU and MoveIt Pro's lab_sim
robot config's camera feeds are running at less than 10 FPS.
Solution: You will need to update your user workspace's Dockerfile to install Nvidia drivers inside the container. Refer to the instructions in the linked Dockerfile.
Docker on ZFS
Problem: When I attempt to build my user_image or user_workspace on a system using ZFS, I see error messages in my terminal suggesting that I am running out of disk space, even though I am not.
Solution: Set up the Docker ZFS storage driver as documented here.
Temporary failure resolving Apt repositories
Problem: When I attempt to build my user_image, I see error messages in the terminal such as:
# Ign:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease
=> => # Ign:3 http://ports.ubuntu.com/ubuntu-ports jammy-updates InRelease
=> => # Ign:4 http://ports.ubuntu.com/ubuntu-ports jammy-backports InRelease
=> => # Ign:5 http://ports.ubuntu.com/ubuntu-ports jammy-security InRelease
=> => # Err:1 http://ports.ubuntu.com/ubuntu-ports jammy InRelease
=> => # Temporary failure resolving 'ports.ubuntu.com'
failed to receive status: rpc error: code = Unavailable desc = error reading from server: EOF
Solution: If you are using a virtual machine (VM), e.g. through VMWare or Parallels, this can sometimes happen when the VM has been suspended for a long time. Try rebooting the VM and verify whether the issue persists.